package com.ws.common;

import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpMethod;

/**
 * @author ：ws
 * @date ：Created in 2023/11/11 23:29
 * @description：TODO
 * @modified By：
 * @version: 1.0.0
 */
public abstract class CPCBaseRequest<T> {

    /**
     * 请求地址
     *
     * @return
     */
    public abstract String requestUrl();

    /**
     * 请求体
     *
     * @return
     */
    public abstract Object requestBody();

    /**
     * 请求 http method
     *
     * @return
     */
    public abstract HttpMethod requestMethod();

    /**
     * 检查请求参数
     */
    public abstract void checkArgument();

    /**
     * 响应的类型
     * @return
     */
    public abstract ParameterizedTypeReference<T> responseTypeReference();
}

